package com.info.zhiduoduo.repository.entity.taxer;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 *  发票列表
 * </p>
 *
 * @author bob
 * @since 2019-11-17
 */
@Data
@Accessors(chain = true)
@TableName("zdd_taxer_invoice")
public class TaxerInvoice extends Model<TaxerInvoice> {

    private static final long serialVersionUID = 1L;

    /**
     * 发票申请id
     */

    @TableId(value ="invoiceid", type = IdType.AUTO)
    private Integer invoiceid;
    /**
     * 申请编号
     */
    private String applyno;
    /**
     * 发票类型 1：普票 2：专票
     */
    @TableField("invoice_type")
    private Integer invoiceType;
    /**
     * 发票内容
     */
    @TableField("invoice_content")
    private String invoiceContent;
    /**
     * 开票地
     */
    @TableField("tax_city")
    private Integer taxCity;
    /**
     * 发票金额转账凭证图片
     */
    @TableField("receipt_img")
    private String receiptImg;
    /**
     * 含税金额
     */
    private BigDecimal amount;
    /**
     * 合伙人基础服务费率
     */
    @TableField("partner_base_service_rate")
    private Double partnerBaseServiceRate;
    /**
     * 合伙人基础服务费
     */
    @TableField("partner_base_service_charge")
    private BigDecimal partnerBaseServiceCharge;
    /**
     * 合伙人项目服务费率
     */
    @TableField("partner_project_service_rate")
    private Double partnerProjectServiceRate;
    /**
     * 合伙人项目服务费
     */
    @TableField("partner_project_service_charge")
    private BigDecimal partnerProjectServiceCharge;
    /**
     * 发票实际支付服务费率
     */
    @TableField("service_rate")
    private Double serviceRate;
    /**
     * 发票实际支付服务费
     */
    @TableField("service_charge")
    private BigDecimal serviceCharge;
    /**
     * 税率
     */
    @TableField("tax_rate")
    private Double taxRate;
    /**
     * 税费
     */
    @TableField("tax_fee")
    private BigDecimal taxFee;
    /**
     *  用户实际总待付金额(合伙人项目服务费+税费)
     */
    @TableField("total_charge")
    private BigDecimal totalCharge;
    /**
     * 发票邮箱
     */
    @TableField("invoice_email")
    private String invoiceEmail;
    /**
     * 销售方id
     */
    private Integer userid;
    /**
     * 工作室名
     */
    private String username;
    /**
     * 工作室纳税人识别号
     */
    @TableField("studio_creditcode")
    private String studioCreditcode;
    /**
     * 工作室地址
     */
    @TableField("studio_addr")
    private String studioAddr;
    /**
     * 工作室电话
     */
    @TableField("studio_phone")
    private String studioPhone;
    /**
     * 购买方id 企业id
     */
    private Integer companyid;
    /**
     * 企业名
     */
    @TableField("company_name")
    private String companyName;
    /**
     * 企业纳税人识别码
     */
    @TableField("company_creditcode")
    private String companyCreditcode;
    /**
     * 企业地址
     */
    @TableField("company_addr")
    private String companyAddr;
    /**
     * 企业电话
     */
    @TableField("company_phone")
    private String companyPhone;
    /**
     * 企业银行
     */
    @TableField("company_bank")
    private String companyBank;
    /**
     * 企业银行卡号
     */
    @TableField("company_acctno")
    private String companyAcctno;

    /**
     * 联系人
     */
    @TableField(exist = false)
    private String contactPerson;

    /**
     * 联系人 电话
     */
    @TableField(exist = false)
    private String contactPhone;

    /**
     * 发票项目id
     */
    private Integer projectid;
    /**
     * 项目名
     */
    private String projectname;
    /**
     * 分类ID
     */
    private Integer categoryid;
    /**
     * 分类名
     */
    private String categoryname;
    /**
     * 项目周期
     */
    private Integer projectcycle;
    /**
     * 项目描述
     */
    private String projectintro;
    /**
     * 状态 1：已创建 2：已开票
     */
    private Integer state;
    /**
     * 发票库存不足 0:否 1:是
     */
    private Integer understock;
    /**
     * 支付id
     */
    private Integer payid;
    /**
     * 确认开票操作人id
     */
    private Integer managerid;
    /**
     * 确认开票时间
     */
    private Date confirmtime;
    /**
     * 备注
     */
    private String remark;
    /**
     * 逻辑删除 0：否 1：是
     */
    @TableLogic
    private Integer deleted;
    private Date createtime;
    @TableField(update = "now()")
    private Date updatetime;

    /**
     * 未开智杰祱发票逾期理由
     */
    @TableField("reasons_for_overdue")
    private String reasonsForOverdue;

    /**
     * 补录时间
     */
    @TableField("supplement_time")
    private Date supplementTime;

    /**
     * 是否是补录：0：不是，1.是
     */
    @TableField("whether_supplement")
    private Integer whetherSupplement;

    /**
     * 补录人员ID
     */
    @TableField("supplement_personnel")
    private Integer supplementPersonnel;

    /**
     * 30万审批截图
     */
    @TableField("approval_screenshot")
    private String approvalScreenshot;

    @ApiModelProperty("交付物路径")
    private String deliveryPath;

    @ApiModelProperty("合同路径")
    private String contactPath;

    @Override
    protected Serializable pkVal() {
        return this.invoiceid;
    }

}
